A micro controller is a processor on a microchip that performs, for example, arithmetic and logic operations. A micro controller creates a task to perform a set of instructions. For example, a task may perform processing on a packet, which is a unit of data.
Packets are received and stored in memory in the order in which they were received in, for example, a First In First Out (FIFO) queue. One task is assigned to one packet and performs processing on the packet. In conventional systems, the task is hard-wired to use particular resources (e.g., FIFO queues and memory registers).
For example, during processing, a task generates commands that describe how the packet is to be transferred, for example, across a network. The task is hard-wired to write the commands into a particular FIFO queue in memory. During processing, the task may require the use of memory registers to store information. The task is hard-wired to use specific registers.
Therefore, for each task, separate resources must be available. This leads to a requirement of many separate FIFO queues, memory registers, and other resources.